package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCDemo1 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        /*
            1:加载驱动:利用反射机制，加载数据库驱动包中提供的驱动实现类
            2:使用驱动管理器DriverManager通过驱动类进行数据库链接
            3:通过链接Connection创建语句对象Statement
            4:通过语句对象执行SQL语句
            5:如果执行DQL则可以处理结果集ResultSet
            6:关闭链接
         */
        //Oracle的驱动类
//        Class.forName("oracle.jdbc.driver.OracleDriver");
        //1:加载驱动类
//      //MySQL的驱动类
        Class.forName("com.mysql.cj.jdbc.Driver");//不同数据库提供的实现类包名类名不完全一样

        //2:建立链接
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",
                "root",
                "root"
        );
        System.out.println("与数据库建立链接成功！");
        //3:创建语句对象
        Statement statement = connection.createStatement();

        /*
            创建一张表
            CREATE TABLE user(
                id INT PRIMARY KEY AUTO_INCREMENT,
                username VARCHAR(30),
                password VARCHAR(30),
                nickname VARCHAR(30),
                age INT(3)
            )
         */
        String sql = "CREATE TABLE user(" +
                     "  id INT PRIMARY KEY AUTO_INCREMENT," +
                     "  username VARCHAR(30)," +
                     "  password VARCHAR(30)," +
                     "  nickname VARCHAR(30)," +
                     "  age INT(3)" +
                     ")";
        /*
            boolean execute(String sql)
            该方法可以用于执行任意种类的SQL语句。当执行后如果产生了查询结果集，则方法返回true，否则
            返回false.
            但是由于我们执行DML(INSERT,UPDATE,DELETE)语句和DQL(SELECT)语句有专门的方法，
            因此该方法通常用来执行DDL语句。
         */
        statement.execute(sql);
        System.out.println("创建成功");

        connection.close();

    }
}
